package com.th.supcom.pds.deptdispensary.client.service;

import java.util.List;

import net.carefx.framework.container.client.exception.UiException;

import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.th.supcom.pds.deptdispensary.client.common.DeptVsDispensaryServiceFactory;
import com.th.supcom.pds.deptdispensary.client.model.DeptVsDispensaryModel;

/**
 * DeptVsDispensary 服务接口.
 * 
 * 科室与药房关系配置.
 */
@RemoteServiceRelativePath (DeptVsDispensaryServiceFactory.BASE_URL + "deptVsDispensary.do")
public interface DeptVsDispensaryRpc extends RemoteService
{

    /**
     * 查询信息.
     * 
     * @param Model
     * @throws UiException 界面异常
     */
    public DeptVsDispensaryModel getDeptVsDispensaryById (Long id) throws UiException;

    /**
     * 添加信息.
     * 
     * @param Model
     * @throws UiException 界面异常
     */
    public void addDeptVsDispensary (DeptVsDispensaryModel model) throws UiException;

    /**
     * 修改信息.
     * 
     * @param Model
     * @throws UiException 界面异常
     */
    public void modifyDeptVsDispensary (DeptVsDispensaryModel model) throws UiException;
    
    /**
     * 修改信息.
     * 
     * @param Model
     * @throws UiException 界面异常
     */
    public void modifyDeptVsDispensaryByDispensary (DeptVsDispensaryModel model) throws UiException;

    /**
     * 删除信息.
     * 
     * @param code
     * @throws UiException 界面异常
     */
    public void removeDeptVsDispensary (Long id) throws UiException;

    /**
     * 分页查询信息.
     * 
     * @param config
     * @return
     */
    public PagingLoadResult <DeptVsDispensaryModel> getDeptVsDispensaryListWithPaging (PagingLoadConfig config);

    /**
     * 获取科室药房关系配置
     * 
     * @param model
     * @return
     * @throws UiException
     */
    List <DeptVsDispensaryModel> getDeptVsDispensaryByExample (DeptVsDispensaryModel model) throws UiException;

    /**
     * 查询药品类型
     * 
     * @param deptVsDispensary
     * @return
     */
    public List <DeptVsDispensaryModel> findDispenseTypeListByExample (DeptVsDispensaryModel model) throws UiException;

    /**
     * 查询药品材质类型
     * 
     * @param deptVsDispensary
     * @return
     */
    public List <DeptVsDispensaryModel> findPhamMaterialTypeListByExample (DeptVsDispensaryModel model) throws UiException;

    /**
     * 更新发药类型药房配置
     * 
     * @param deptVsDispensary
     * @return
     */
    public void modifyDispenseTypeByExample (DeptVsDispensaryModel model) throws UiException;

    /**
     * 新增发药类型药房配置
     * 
     * @param deptVsDispensary
     */
    public void addDispenseType (DeptVsDispensaryModel model) throws UiException;

    /**
     * 删除发药类型药房配置
     * 
     * @param id
     * @return
     */
    public void removeDispenseTypeByID (Long id) throws UiException;

    /**
     * 更新药品材质药房配置
     * 
     * @param deptVsDispensary
     * @return
     */
    public void modifyPhamMeterialTypeByExample (DeptVsDispensaryModel model) throws UiException;

    /**
     * 新增药品材质药房配置
     * 
     * @param deptVsDispensary
     */
    public void addPhamMeterialType (DeptVsDispensaryModel model) throws UiException;

    /**
     * 删除药品材质药房配置
     * 
     * @param id
     * @return
     */
    public void removePhamMeterialTypeByID (Long id) throws UiException;

    /** 公司版权信息. */
    public static final String copyright = "Copyright 2014, TH Supcom Corporation";

    /** 提交路径. */
    public static final String SCC_BRANCH = "$URL$";

    /** 提交日期. */
    public static final String SCC_LAST_MODIFICATION_DATE = "$Date$";

    /** 最终修改人员. */
    public static final String SCC_LAST_MODIFIER_NAME = "$Author$";

    /** 最终版本号. */
    public static final String SCC_REVISION = "$Revision$";

}